package com.ftg.learn.chapter11.datastruct;

/**
 * 双链式
 *
 * @author kangjx
 * @version 1.0
 * @date 2023/2/7 上午10:59
 */
public class DblLinked<T> {


    /**
     * 求有多少个可用元素
     *
     * @return
     */
    public int size() {
        return 0;
    }

    /**
     * 通过指定的元素 下标查找当前结点
     *
     * @param index
     * @return
     */
    private Node<T> findNodeByIndex(int index) {
        return null;
    }

    private Node<T> getNode(int index) {
        return null;
    }

    public T getVal(int index) {
        return null;
    }

    /**
     * 删除时
     * 长度
     * val问题
     * 删除的下标超过 总长度时间
     *
     * @param index 下标
     * @return
     */
    public boolean delByIndex(int index) {
        return true;
    }

    public boolean insertByIndex(int index, T val) {
        return true;
    }

    /**
     * 追加方法
     * 两指针  一个指向头一个指向尾
     *
     * @param val 实际值
     */
    public void addTail(T val) {

    }

    private class Node<T> {
        Node<T> prev;
        T val;
        Node<T> next;
    }
    /**
     * 1 ： 约瑟夫环
     * 2 : 链表  实现队列
     *   线性表是最基本、最简单、也是最常用的一种数据结构。
     *   队列 ：
     *   队列是一种特殊的线性表，特殊之处在于它只允许在表的前端（front）进行删除操作，而在表的后端（rear）进行插入操作
     *   addRear();
     *   getHead()
     * 3 : 栈....
     *
     */

    public static void main(String[] args) {
        int a = (int)(Math.random() * 16) + 1;
        System.out.println(a);

        /**
         *
         */

    }

}
